package com.wyl.base

import android.content.Context
import com.wyl.base.bean.UserData
import com.wyl.libbase.utils.ACache

var userData: UserData? = null

object ACacheHelper {
    // 内存缓存
    var id = ""
        get() {
            if (field.isEmpty()) {
                val data = cache.getAsObject(USERDATA) as UserData
                field = data.id
            }
            return field
        }

    lateinit var cache: ACache

    fun init(context: Context) {
        cache = ACache.get(context)
    }

    fun putCode(code: String) = cache.put(CODE, code, 300)

    fun getMsgCode(): String? = cache.getAsString(CODE)

    fun login(data: UserData) {
        id = data.id
        userData = data
        cache.put(USERDATA, data)
    }

    fun getUserData(): UserData {
        if (userData == null) {
            userData = cache.getAsObject(USERDATA) as UserData?
        } else {
            userData!!.clone(cache.getAsObject(USERDATA) as UserData)
        }
        return userData!!
    }

    fun hasLogin() = cache.getAsObject(USERDATA) != null

    fun logout() {
        cache.remove(USERDATA)
    }

}